using System;

using CUtil;
using CGraph;

namespace CStock
{
	/// <summary>
	/// Summary description for IConfiguration.
	/// </summary>
	public interface IConfiguration : IStockObjectBase
	{
		Dates Dates{get;}
		Directories Directories{get;}
        bool WebUpdate_Only200 { get;set;}
        bool SetNewPath(string newPath);

     

		int ChartInterval{get;set;}
		
		bool TerminateAction{get;set;}
		
		//bool ModeUserTrade{get;set;}
		bool ShowTradeEventsOnChart{get;set;}
		bool IntradayIndicators{get;set;}
		


		bool ShowTradeSystemIndicator{get;set;}
		System.Collections.ArrayList IndicatorsToShowOnChart{get;set;}
		System.Collections.ArrayList IndicatorsIntradayOnChart{get;set;}


	

		DateTime LastQuoteUpdate{get;set;}

		ProgramModes ProgramMode{get;set;}

		bool ChartChanged{get;set;}
		bool IntradayModus{get;set;}
		bool IntradayModusSilent{get;set;}
		

		bool FuturesTrade{get;set;}


		bool TradeShortSellAllowed{get;set;}
		bool TradeShortSellOtherFile{get;set;}


		bool TradeStopLoss{get;set;}
        bool TradeStopWin{get;set;}
		bool TradeStopLossDynamic{get;set;}
		int TradeStopLossDynamicPercentage{get;set;}

		


		int TradeStopLossPercentage{get;set;}
		int TradeStopWinPercentage{get;set;}




		

		string WebUpdateFileName{get;set;}
		

		CUtil.TradeMoneyType TradeMoneyType{get;set;}

		int IntradayDataSaveInterval{get;set;}
		

	}
	public interface IDirectories
	{
		//void Defaults(string workingDir);
		void Defaults();
        string ProfilePath{get;set;}
		string ApplicationPath {get;set;}
		
        string TradersPath { get;set;}
        string TradeEconomyPath{ get;set;}


        string TradeSystemsTemplatesPath { get;set;}
        string TradeEconomyProfilePath { get;set;}
                
        //string WorkingDirectory {get;set;}
		string PortfolioPath {get;set;}
        string AssetPath { get;set;}
        string DepositPath { get;set;}

		string QuotesDataPath {get;set;}

		string LogPath {get;set;}

		
		

		string IndicatorsPathRelative{get;set;}
		string IndicatorsComposedDir{get;set;}

		string SimulationPath{get;set;}

		string QuoteUpdatePath{get;set;}
		//string IntradayPath{get;set;}
		string OptimizationOutputPath{get;set;}
		string WebFilePath{get;set;}
       
	}
	public interface IDates
	{
		void Defaults();

		DatePeriods DatePeriods {get;set;}


		DateTime DateMaxUserTrade{get;set;}
		DateTime DateMinUserTrade{get;set;}

		DateTime DateMin{get;}
		DateTime DateMax{get;}

		


		DateTime DateIntraday{get;set;}
		

		DateTime DateMaxSimulation{get;set;}
		DateTime DateMinSimulation{get;set;}

		DateTime DateMaxAvailable{set;}
		DateTime DateMinAvailable{set;}

		DateTime DateMinChartCurrent{get;set;}
		DateTime DateMaxChartCurrent{get;set;}
		DateTime DateMinChartCurrentSilent{get;set;}
		
		

		DateTime DateMinChart{get;set;}
		DateTime DateMinChartSilent{get;set;}
		DateTime DateMaxChart{get;set;}
		DateTime DateMinReset{get;}
		DateTime DateMaxReset{get;}
	}

}
